Some user-agents, e.g., browsers such as Firefox, Internet Explorer, Google Chrome, etc., receive dynamic instructions from servers via a network of computers. Management of the instructions that servers deliver to user-agents has traditionally been done in an ad hoc manner. Often, these instructions are delivered to the user-agent without any consideration as to an organizational structure for these instructions. Common code libraries often store these computer instructions. These libraries deliver computer instructions as a “chunk” of code to the user-agent. There is often no logical relationship or hierarchical structure among the processes that the code is meant to perform.
This current practice creates certain problems. As an example, the lack of hierarchical structure creates inherent problems because of naming conflicts. Often, code libraries aggregate many programmers' computer instructions. These programmers may use identical names for functions within the computer instructions. Occasionally, multiple functions are delivered to the browser that may have the same name. When the browser, or user-agent tries to execute the function, the naming conflict causes an error or unexpected behavior.
Further, when a web developer attempts to fix any problems associated with a webpage, it is often challenging to read and decipher the code that has been delivered to the user-agent, i.e., the “client-delivered code.” Because the first step in fixing any errors with computer instructions is to understand the instructions, the inability of web developers to quickly understand the instructions lengthens debug time.
A current work-around to the ad hoc, non-hierarchical, client-delivered code is to simply have the server perform the function. However, this creates inefficiencies. For example, having the server perform the function requires communication between the user-agent and the server. This adds to the time it takes for the user to receive results. This time is compounded if the function requires input from the user. Each time the server requires user input, information must travel from the client, e.g., the user-agent, to the server and then back to the client.
In addition to timing inefficiencies, having the server perform the function(s) also prevents the computer processor load from being appropriately distributed between the server and the client. Because many clients might make a request for the server to perform a function, a server might lack the processing power to quickly serve all the requests from multiple clients.
The result of this ad hoc management of instructions renders creation and support of webpages inefficient, lengthens the time for user interaction, increases network footprints, and prevents optimization of computer processing power. It is with respect to this general environment that embodiments of the present disclosure have been contemplated. Although specific problems have been addressed in this Background, this disclosure is not intended in any way to be limited to solving those specific problems.